package com.ruoyi.web.controller.system;

import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.PdfImage;
public class insertSingleImageWatermark {
    public static void main(String[] args) {
        //创建PdfDocument类的对象
        PdfDocument pdf = new PdfDocument();
        //载入PDF文档
        pdf.loadFromFile("C:\\Users\\Administrator\\Desktop\\应急广播new\\2023年红谷滩区应急广播系统建设项目验收资料需用印扫描版20231229.pdf");
        //载入图片
        PdfImage image = PdfImage.fromFile("C:\\Users\\Administrator\\Desktop\\微信截图_20240102124914.png");
        //获取图片的宽度和高度用于计算插入水印的初始坐标
        int imageWidth = image.getWidth();
        int imageHeight = image.getHeight();
        //循环遍历所有页面以插入水印
        for (int i = 0; i < pdf.getPages().getCount(); i++) {
            //获取一个页面
            PdfPageBase page = pdf.getPages().get(i);
            //获取该页面的宽度和高度，用于计算插入水印的初始坐标
            float pageWidth = (float) (page.getActualSize().getWidth());
            float pageHeight = (float) (page.getActualSize().getHeight());

            //设置水印图片的透明度
            page.getCanvas().setTransparency(0.3f);
            //在页面的中间位置绘制水印图片
            page.getCanvas().drawImage(image, pageWidth/2 - imageWidth/2, pageHeight/2 - imageHeight/2, pageWidth, pageHeight);
        }
        //保存文档
        pdf.saveToFile("C:\\Users\\Administrator\\Desktop\\应急广播new\\result1.pdf");
    }
}